iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 7
0
AI & Data

特徵工程 in 30 days系列 第 8

[瞭解資料特徵]Part3-資料的四個尺度-C

  • 分享至 

  • xImage
  •  

各資料尺度允許的數學操作及視覺化方式

此文將會一一審視各種資料尺度允許的數學操作以及視覺化方式。每個資料尺度範例以單個欄位做示範,但不限於此單欄位,可應用在其他同樣資料尺度的欄位。

Ref

titanic各欄位的資料尺度:

欄位 資料尺度
PassengerId 名目尺度
Survived 名目尺度
Pclass 次序尺度
Name 名目尺度
Sex 名目尺度
Age 等比尺度
SibSp 等比尺度
Parch 等比尺度
Fare 等比尺度
Cabin 名目尺度
Embarked 名目尺度

1.名目尺度

符合此資料尺度的欄位為:PassengerId/Survived/Cabin/Embarked。在名目尺度下,我們不能使用任何定量的數學操作,例如四則運算或乘除。但是我們能使用基本的計數,也就是計算每個值的數量。

#匯入maplotlib做視覺化
import matplotlib.pyplot as plt
#讀取資料
data = pd.read_csv('data/train.csv')
#對所有值計數
data.Embarked.value_counts() 

https://ithelp.ithome.com.tw/upload/images/20181010/20111826VV1c3GIzEq.jpg

Embarked是乘客上船的港口,S是Embarked最常出現的類別,代表最多人上船的港口。由於可以計數,因此我們可以使用一些挑型圖來做視覺化,例如長條圖圓餅圖

視覺化方法

長條圖
data.Embarked.value_counts().plot.barh(x='Port of Embarkation', 
                                       y='number of people')

https://ithelp.ithome.com.tw/upload/images/20181010/20111826TEmE9sldGK.jpg

圓餅圖
data.Embarked.value_counts().plot(kind='pie')

https://ithelp.ithome.com.tw/upload/images/20181010/2011182618qAjbiEoA.jpg

允許的數學操作

2.次序尺度

符合此資料尺度的欄位為:Pclass。與名目尺度相比,我們在次序尺度上有一些新的能力。在次序尺度上,我們仍然可以像在名目尺度上那樣進行基本計數,但我們也可以在比較中引入比較和排序。因此,我們可以在此級別使用新圖表。我們可以使用像名目尺度那樣的長條和圓餅圖,但因為我們現在有了排序和比較,我們可以計算中位數和百分位數。有了中位數和百分位數,便能以箱形圖作呈現。

#對所有值計數
data.Pclass.value_counts()

https://ithelp.ithome.com.tw/upload/images/20181010/20111826RrUAfIAqnO.jpg

視覺化方法

長條圖
data.Pclass.value_counts().plot.barh(x='Pclasses', 
                                     y='number of people')

https://ithelp.ithome.com.tw/upload/images/20181010/20111826fk4l4yDVqv.jpg

圓餅圖
data.Pclass.value_counts().plot('pie')

https://ithelp.ithome.com.tw/upload/images/20181010/20111826vMmmCtDlO9.jpg

箱型圖
data.Pclass.value_counts().plot('box')

https://ithelp.ithome.com.tw/upload/images/20181010/20111826QIZBaQPnQw.jpg

允許的數學操作

由於次序尺度相較名目尺度多了排序及大小比較,因此我們能夠使用數值比較的操作。

#只取Pclass為1的紀錄
class_1 = data.Pclass[data.Pclass == 1] 
#只取Pclass為2的紀錄
class_2 = data.Pclass[data.Pclass == 2] 
#只取Pclass為3的紀錄
class_3 = data.Pclass[data.Pclass == 3] 

#只取Pclass大於1的紀錄
below_1 = data.Pclass[data.Pclass > 1] 
#只取Pclass大於2的紀錄
below_2 = data.Pclass[data.Pclass > 2] 

3.等距尺度

無等距尺度實例。

4.等比尺度

符合此資料尺度的欄位為:Age/SibSp/Parch/Fare,以Fare來做示範。
在等距尺度及更高級別如等比尺度,除了可以使用較低尺度的視覺化方式之外,它使我們還能夠使用散點圖、折線圖,以在複數軸上繪製資料(二維、三維),並將資料點可視化為圖形上的文字點,這麼做的好處是讓我們能夠比對資料間的關係(例如:線性、非線性)、變化趨勢(例如:隨時間變化的數值)。

視覺化方法

長條圖
data.Fare.hist()

https://ithelp.ithome.com.tw/upload/images/20181010/20111826enKOMtyr2b.jpg

折線圖
#將資料以Age以及Pclass分群後取Fare之算術平均數的折線圖
data.groupby(['Age', 'Pclass']).mean()['Fare'].plot()

https://ithelp.ithome.com.tw/upload/images/20181010/20111826JZ05oyqXWx.jpg

散點圖
#顯示所有表徵之間的關聯性
from pandas.plotting import scatter_matrix
scatter_matrix(data, alpha=0.5, diagonal='kde')
plt.show()

https://ithelp.ithome.com.tw/upload/images/20181010/201118267v6WGexNzE.jpg

允許的數學操作

等比尺度是最高的尺度,擁有其餘尺度的特性以外,最重要的是其等比的特性允許數學中的乘除運算。例如我們想要對資料欄位Fare做其他幣別的數值轉換,完全可以將資料做乘除操作。

#將票價資料從英鎊轉換為台幣計價
fare_in_twd = data.Fare * 40.8
#將票價資料從英鎊轉換為美金計價
fare_in_twd = data.Fare * 1.31

上一篇
[瞭解資料特徵]Part3-資料的四個尺度-B
下一篇
[改善資料品質]Part-1 EDA
系列文
特徵工程 in 30 days23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言